--
-- Created by IntelliJ IDEA.
-- User: zhanpu
-- Date: 20-10-30
-- Time: 下午4:11
-- To change this template use File | Settings | File Templates.
-- 计数法流量限制
--

-- 获取key
local limitKey = KEYS[1]
-- 获取参数1并转换成功number
local limit = tonumber(ARGV[1])
-- 获取参数2并转换成功number
local time = tonumber(ARGV[2])

-- 根据key从redis中获取数据
local currentLimit = tonumber(redis.call('get', limitKey) or '0')
-- 检验是否超出限制大小，超出返回
if currentLimit + 1 > limit then
    return 0;
else
    -- 未超出，redis自增加1并
    redis.call('INCRBY', limitKey, 1)
    -- 设置过期时间
    redis.call('EXPIRE', limitKey, time)
    -- 返回值
    return currentLimit + 1;
end
